Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrate build system for crab inferring sea.is_dereferenceable #102

Draft
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

LinerSu
Copy link
Collaborator

@LinerSu LinerSu commented Sep 22, 2021

To use crab infer sea.is_dereferenceable, need to do the following:
(1) At the build stage, you are required to specify -DSEA_ENABLE_CRAB=ON if you use crab.
(2) We add several adaptions for crab:
- We added an assumption that malloc cannot fail. That is, we assume every allocation cannot fail.
- We added an assumption that an aws_string cannot be empty.
(3) To run an individual job, use the following command:

./verify --crab <job_name>

the optional flag --crab allows Seahorn to run crab inside the opsem2 BMC engine.
(4) For the experiment, you are required to run the following command to get results by a csv file:

python3 get_exper_res.py --seahorn --crab

Note: This PR is guided by @caballa.

@codecov
Copy link

codecov bot commented Sep 22, 2021

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 93.81%. Comparing base (39587ff) to head (4ba8f10).
Report is 22 commits behind head on master.

❗ Current head 4ba8f10 differs from pull request most recent head 1c16e59. Consider uploading reports for the commit 1c16e59 to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #102      +/-   ##
==========================================
- Coverage   95.61%   93.81%   -1.81%     
==========================================
  Files         160      159       -1     
  Lines        4950     3814    -1136     
==========================================
- Hits         4733     3578    -1155     
- Misses        217      236      +19     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@caballa
Copy link

caballa commented Sep 22, 2021

I found annoying in this command:

python3 get_exper_res.py --seahorn --usecrab --crab

that we need two crab-related options: --usecrab and --crab.
I think that --usecrab is used to compile the whole verify-c-common repo while --crab is passed to the verify command.
I always found strange that this python script tries to build the repo.
I think it shouldn't do it but I guess you have your own reasons for that.

@LinerSu
Copy link
Collaborator Author

LinerSu commented Sep 23, 2021

We implemented those two scripts for paper experiments. For now, we wish to have more experiments on verify-c-common. I also made a change to avoid using the build folder (so do not remove everything on that folder). The folder name is automatically generated by a given extra flag.

@LinerSu LinerSu marked this pull request as draft April 20, 2022 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants